package com.muyun.data.modeler.infrastructure.general.exceptions;

import com.muyun.data.modeler.infrastructure.general.consts.MessageConsts;

/**
 * 提示语异常，各种信息提示
 *
 * @author muyun12
 * @date 2020-12-19 19:13:22
 * @since 0.1.0
 */
public class TipException extends RuntimeException {

    private StackTraceElement[] stackTraceElements = new StackTraceElement[0];

    private Object result;

    /**
     * 只用于业务流程控制，返回提示信息，抑制所有异常信息的记录
     *
     * @param message 异常提示语
     */
    public TipException(String message) {
        super(message);
        this.setStackTrace(stackTraceElements);
    }

    /**
     * 只用于业务流程控制，返回提示信息，抑制所有异常信息的记录
     * 并且返回异常数据
     *
     * @param message 异常提示语
     * @param result 异常返回的数据
     */
    public TipException(String message, Object result) {
        super(message);
        this.result = result;
        this.setStackTrace(stackTraceElements);
    }

    /**
     * 用于返回异常封装
     *
     * @param message 异常提示语
     * @param throwable 异常
     */
    public TipException(String message, Throwable throwable) {
        super(message, throwable);
    }

    /**
     * 获取异常的返回码值
     *
     * @return
     */
    public String getCode(){
        return MessageConsts.CODE_1;
    }

    /**
     * 获取异常响应的数据
     *
     * @return
     */
    public Object getResult() {
        return result;
    }
}
